home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / basic / Codewandler.lha / Codewandler.BAS < prev    next >
BASIC Source File  |  2002-03-03  |  14KB  |  552 lines

  1. '
  2. '  CodeWandler by J. F. from SATANIC
  3. '  für Xplodercodes (Sony PSX) (Playstationbesitzer wissen Bescheid)
  4. '  english
  5. '  only codes with coding 5 or 6 are available
  6. '  coding 6 codes are distributed by FCD (Future Console Design) itself
  7. '  no warranty for any mistakes; using this of your own risk
  8. '  These was written for AMOS and AMOSPro (AMIGA)
  9. '  for use with PC (QBasic) little changes needed
  10. '  sorry for my bad english
  11. '  this code is mailware; if you use it, send me a mail:
  12. '  shuddemel(at)aol.com
  13. '
  14. '  deutsch
  15. '  nur Codes mit der Codierung 5 oder 6 sind möglich umzuwandeln
  16. '  Codes mit der Codierung 6 werden nur von FCD selbst herausgebracht
  17. '  Ich gebe keine Garantie für irgendwelche Fehler;
  18. '  Benutzung auf eigenes Risiko
  19. '  Geschrieben habe ich das Programm in AMOS und AMOSPro (AMIGA)
  20. '  Um es mit dem PC (QBasic) zu nutzen sind kleine Änderungen nötig
  21. '  Dieses Programm ist Mailware; falls jemand es benutzt, mailt mir:
  22. '  shuddemel(at)aol.com
  23. '
  24. DIM CD(16)
  25. NOCHMAL:
  26. CLS
  27. LOCATE 1, 4
  28. code$ = ""
  29. INPUT "Verschlsselter Code : $"; code$
  30. A$ = "0123456789ABCDEF"
  31. IF code$ <> "" THEN
  32.    L = LEN(code$)
  33.    IF L = 12 THEN
  34.       FOR X = 1 TO 12
  35.          R$ = MID$(code$, X, 1)
  36.          V = 0
  37.          R$ = UCASE$(R$)
  38.          FOR Y = 1 TO 16
  39.             IF R$ = MID$(A$, Y, 1) THEN
  40.                EXIT FOR
  41.             ELSE
  42.                V = V + 1
  43.             END IF
  44.             IF V = 16 THEN
  45.                LOCATE 2, 4
  46.                PRINT "Ungltiger Wert an Position "; X; "."
  47.                GOTO N
  48.             END IF
  49.          NEXT Y
  50.          R$ = UCASE$(R$)
  51.          GOSUB VL
  52.          CD(X) = R
  53.          IF X = 1 THEN
  54.             CD(X) = R
  55.          END IF
  56.          IF X = 2 THEN
  57.             IF CD(X) = 5 THEN
  58.                COD = 1
  59.             ELSE
  60.                IF CD(X) = 7 THEN
  61.                   COD = 2
  62.                ELSE
  63.                   COD = 0
  64.                END IF
  65.             END IF
  66.             CD(X) = 0
  67.          END IF
  68.          IF X = 3 THEN
  69.             IF COD = 1 THEN
  70.                RESTORE C3
  71.                FOR CC = 1 TO 16
  72.                   READ E3
  73.                   IF R = CC - 1 THEN
  74.                      CD(X) = E3
  75.                      EXIT FOR
  76.                   END IF
  77.                NEXT CC
  78.             ELSE
  79.                IF COD = 2 THEN
  80.                   RESTORE S3
  81.                ELSE
  82.                   E3 = 5
  83.                   IF CD(X) = 6 THEN
  84.                      E3 = 6
  85.                   END IF
  86.                   CD(X) = 0
  87.                END IF
  88.             END IF
  89.          END IF
  90.          IF X = 4 THEN
  91.             IF COD = 0 THEN
  92.                RESTORE V4
  93.             ELSE
  94.                IF COD = 2 THEN
  95.                   RESTORE S4
  96.                ELSE
  97.                   RESTORE C4
  98.                END IF
  99.             END IF
  100.             FOR CC = 1 TO 16
  101.                READ E4
  102.                IF R = CC - 1 THEN
  103.                   CD(X) = E4
  104.                   IF COD = 1 THEN
  105.                      IF CC > 9 THEN
  106.                         CD(X - 1) = CD(X - 1) + 1
  107.                         IF CD(X - 1) = 16 THEN
  108.                            CD(X - 1) = 0
  109.                         END IF
  110.                      END IF
  111.                   ELSE
  112.                      IF COD = 2 THEN
  113.                      ELSE
  114.                         IF CC > 5 AND E3 = 6 THEN
  115.                            CD(X - 1) = 1
  116.                         END IF
  117.                      END IF
  118.                   END IF
  119.                   EXIT FOR
  120.                END IF
  121.             NEXT CC
  122.          END IF
  123.          IF X = 5 THEN
  124.             IF COD = 0 THEN
  125.                RESTORE V5
  126.             ELSE
  127.                IF COD = 2 THEN
  128.                   RESTORE S5
  129.                ELSE
  130.                   RESTORE C5
  131.                END IF
  132.             END IF
  133.             FOR CC = 1 TO 16
  134.                READ E5
  135.                IF R = CC - 1 THEN
  136.                   CD(X) = E5
  137.                   EXIT FOR
  138.                END IF
  139.             NEXT CC
  140.          END IF
  141.          IF X = 6 THEN
  142.             IF COD = 0 THEN
  143.                RESTORE V6
  144.                EH = 6
  145.             ELSE
  146.                IF COD = 2 THEN
  147.                   RESTORE S6
  148.                ELSE
  149.                   RESTORE C6
  150.                   EH = 14
  151.                END IF
  152.             END IF
  153.             FOR CC = 1 TO 16
  154.                READ E6
  155.                IF R = CC - 1 THEN
  156.                   CD(X) = E6
  157.                   IF COD = 0 THEN
  158.                      IF CC < EH THEN
  159.                         CD(X - 1) = CD(X - 1) - 1
  160.                         IF CD(X - 1) = -1 THEN
  161.                            CD(X - 1) = 15
  162.                         END IF
  163.                      END IF
  164.                   ELSE
  165.                      IF COD = 2 THEN
  166.                      ELSE
  167.                         IF CC > EH THEN
  168.                            CD(X - 1) = CD(X - 1) + 1
  169.                            IF CD(X - 1) = 16 THEN
  170.                               CD(X - 1) = 0
  171.                            END IF
  172.                         END IF
  173.                      END IF
  174.                   END IF
  175.                   EXIT FOR
  176.                END IF
  177.             NEXT CC
  178.          END IF
  179.          IF X = 7 THEN
  180.             IF COD = 0 THEN
  181.                RESTORE V7
  182.             ELSE
  183.                IF COD = 2 THEN
  184.                   RESTORE S7
  185.                ELSE
  186.                   RESTORE C7
  187.                END IF
  188.             END IF
  189.             FOR CC = 1 TO 16
  190.                READ E7
  191.                IF R = CC - 1 THEN
  192.                   CD(X) = E7
  193.                   EXIT FOR
  194.                END IF
  195.             NEXT CC
  196.          END IF
  197.          IF X = 8 THEN
  198.             IF COD = 0 THEN
  199.                RESTORE V8
  200.                EH = 6
  201.             ELSE
  202.                IF COD = 2 THEN
  203.                   RESTORE S8
  204.                ELSE
  205.                   RESTORE C8
  206.                   EH = 15
  207.                END IF
  208.             END IF
  209.             FOR CC = 1 TO 16
  210.                READ E8
  211.                IF R = CC - 1 THEN
  212.                   CD(X) = E8
  213.                   IF COD = 0 THEN
  214.                      IF CC < EH THEN
  215.                         CD(X - 1) = CD(X - 1) - 1
  216.                         IF CD(X - 1) = -1 THEN
  217.                            CD(X - 1) = 15
  218.                         END IF
  219.                      END IF
  220.                   ELSE
  221.                      IF COD = 2 THEN
  222.                      ELSE
  223.                         IF CC > EH THEN
  224.                            CD(X - 1) = CD(X - 1) + 1
  225.                            IF CD(X - 1) = 16 THEN
  226.                               CD(X - 1) = 0
  227.                            END IF
  228.                         END IF
  229.                      END IF
  230.                   END IF
  231.                   EXIT FOR
  232.                END IF
  233.             NEXT CC
  234.          END IF
  235.          IF X = 9 THEN
  236.             IF COD = 0 THEN
  237.                RESTORE V9
  238.             ELSE
  239.                IF COD = 2 THEN
  240.                   RESTORE S9
  241.                ELSE
  242.                   RESTORE C9
  243.                END IF
  244.             END IF
  245.             FOR CC = 1 TO 16
  246.                READ E9
  247.                IF R = CC - 1 THEN
  248.                   CD(X) = E9
  249.                   EXIT FOR
  250.                END IF
  251.             NEXT CC
  252.          END IF
  253.          IF X = 10 THEN
  254.             IF COD = 0 THEN
  255.                RESTORE V10
  256.                EH = 6
  257.             ELSE
  258.                IF COD = 2 THEN
  259.                   RESTORE S10
  260.                ELSE
  261.                   RESTORE C10
  262.                   EH = 14
  263.                END IF
  264.             END IF
  265.             FOR CC = 1 TO 16
  266.                READ E10
  267.                IF R = CC - 1 THEN
  268.                   CD(X) = E10
  269.                   IF COD = 0 THEN
  270.                      IF CC < EH THEN
  271.                         CD(X - 1) = CD(X - 1) - 1
  272.                         IF CD(X - 1) = -1 THEN
  273.                            CD(X - 1) = 15
  274.                         END IF
  275.                      END IF
  276.                   ELSE
  277.                      IF COD = 2 THEN
  278.                      ELSE
  279.                         IF CC > EH THEN
  280.                            CD(X - 1) = CD(X - 1) + 1
  281.                            IF CD(X - 1) = 16 THEN
  282.                               CD(X - 1) = 0
  283.                            END IF
  284.                         END IF
  285.                      END IF
  286.                   END IF
  287.                   EXIT FOR
  288.                END IF
  289.             NEXT CC
  290.          END IF
  291.          IF X = 11 THEN
  292.             IF COD = 0 THEN
  293.                RESTORE V11
  294.             ELSE
  295.                IF COD = 2 THEN
  296.                   RESTORE S11
  297.                ELSE
  298.                   RESTORE C11
  299.                END IF
  300.             END IF
  301.             FOR CC = 1 TO 16
  302.                READ E11
  303.                IF R = CC - 1 THEN
  304.                   CD(X) = E11
  305.                   EXIT FOR
  306.                END IF
  307.             NEXT CC
  308.          END IF
  309.          IF X = 12 THEN
  310.             IF COD = 0 THEN
  311.                RESTORE V12
  312.                EH = 6
  313.             ELSE
  314.                IF COD = 2 THEN
  315.                   RESTORE S12
  316.                ELSE
  317.                   RESTORE C12
  318.                   EH = 13
  319.                END IF
  320.             END IF
  321.             FOR CC = 1 TO 16
  322.                READ E12
  323.                IF R = CC - 1 THEN
  324.                   CD(X) = E12
  325.                   IF COD = 0 THEN
  326.                      IF CC < EH THEN
  327.                         CD(X - 1) = CD(X - 1) - 1
  328.                         IF CD(X - 1) = -1 THEN
  329.                            CD(X - 1) = 15
  330.                         END IF
  331.                      END IF
  332.                   ELSE
  333.                      IF COD = 2 THEN
  334.                      ELSE
  335.                         IF CC > EH THEN
  336.                            CD(X - 1) = CD(X - 1) + 1
  337.                            IF CD(X - 1) = 16 THEN
  338.                               CD(X - 1) = 0
  339.                            END IF
  340.                         END IF
  341.                      END IF
  342.                   END IF
  343.                   EXIT FOR
  344.                END IF
  345.             NEXT CC
  346.          END IF
  347.       NEXT X
  348.       UCODE$ = ""
  349.       FOR X = 1 TO 12
  350.          R = CD(X)
  351.          GOSUB VR
  352.          UCODE$ = UCODE$ + RC$
  353.       NEXT X
  354.       D = CD(9) * 16 ^ 3 + CD(10) * 16 ^ 2 + CD(11) * 16 + CD(12) MOD 16
  355.       LOCATE 2, 4
  356.       PRINT "Entschlsselter Code : $"; UCODE$; " Hex :"; HEX$(D); " = Dezimal : "; D
  357.       GOTO N
  358.    ELSE
  359.       LOCATE 2, 4: PRINT "Ungltige Anzahl."
  360.       GOTO N
  361.    END IF
  362. ELSE
  363. N:
  364.    LOCATE 3, 4
  365.    PRINT "Nochmal? j/n: "
  366.    DO
  367.       i$ = INKEY$
  368.       IF i$ <> "" THEN
  369.          EXIT DO
  370.       END IF
  371.    LOOP
  372.    IF i$ <> "" THEN
  373.       IF UCASE$(i$) = "J" THEN
  374.          GOTO NOCHMAL
  375.       ELSE
  376.          END
  377.       END IF
  378.    ELSE
  379.       END
  380.    END IF
  381. END IF
  382. VL:
  383. IF R$ = "0" THEN
  384.    R = 0
  385. END IF
  386. IF R$ = "1" THEN
  387.    R = 1
  388. END IF
  389. IF R$ = "2" THEN
  390.    R = 2
  391. END IF
  392. IF R$ = "3" THEN
  393.    R = 3
  394. END IF
  395. IF R$ = "4" THEN
  396.    R = 4
  397. END IF
  398. IF R$ = "5" THEN
  399.    R = 5
  400. END IF
  401. IF R$ = "6" THEN
  402.    R = 6
  403. END IF
  404. IF R$ = "7" THEN
  405.    R = 7
  406. END IF
  407. IF R$ = "8" THEN
  408.    R = 8
  409. END IF
  410. IF R$ = "9" THEN
  411.    R = 9
  412. END IF
  413. IF R$ = "A" THEN
  414.    R = 10
  415. END IF
  416. IF R$ = "B" THEN
  417.    R = 11
  418. END IF
  419. IF R$ = "C" THEN
  420.    R = 12
  421. END IF
  422. IF R$ = "D" THEN
  423.    R = 13
  424. END IF
  425. IF R$ = "E" THEN
  426.    R = 14
  427. END IF
  428. IF R$ = "F" THEN
  429.    R = 15
  430. END IF
  431. RETURN
  432. VR:
  433. IF R = 0 THEN
  434.    RC$ = "0"
  435. END IF
  436. IF R = 1 THEN
  437.    RC$ = "1"
  438. END IF
  439. IF R = 2 THEN
  440.    RC$ = "2"
  441. END IF
  442. IF R = 3 THEN
  443.    RC$ = "3"
  444. END IF
  445. IF R = 4 THEN
  446.    RC$ = "4"
  447. END IF
  448. IF R = 5 THEN
  449.    RC$ = "5"
  450. END IF
  451. IF R = 6 THEN
  452.    RC$ = "6"
  453. END IF
  454. IF R = 7 THEN
  455.    RC$ = "7"
  456. END IF
  457. IF R = 8 THEN
  458.    RC$ = "8"
  459. END IF
  460. IF R = 9 THEN
  461.    RC$ = "9"
  462. END IF
  463. IF R = 10 THEN
  464.    RC$ = "A"
  465. END IF
  466. IF R = 11 THEN
  467.    RC$ = "B"
  468. END IF
  469. IF R = 12 THEN
  470.    RC$ = "C"
  471. END IF
  472. IF R = 13 THEN
  473.    RC$ = "D"
  474. END IF
  475. IF R = 14 THEN
  476.    RC$ = "E"
  477. END IF
  478. IF R = 15 THEN
  479.    RC$ = "F"
  480. END IF
  481. RETURN
  482. V3:
  483. DATA 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1
  484. V4:
  485. DATA 10,13,12,15,14,1,0,3,2,5,4,7,6,9,8,11
  486. V5:
  487. DATA 11,12,13,14,15,0,1,2,3,4,5,6,7,8,9,10
  488. V6:
  489. DATA 9,14,15,12,13,2,3,0,1,6,7,4,5,10,11,8
  490. V7:
  491. DATA 11,12,13,14,15,0,1,2,3,4,5,6,7,8,9,10
  492. V8:
  493. DATA 8,15,14,13,12,3,2,1,0,7,6,5,4,11,10,9
  494. V9:
  495. DATA 11,12,13,14,15,0,1,2,3,4,5,6,7,8,9,10
  496. V10:
  497. DATA 15,8,9,10,11,4,5,6,7,0,1,2,3,12,13,14
  498. V11:
  499. DATA 11,12,13,14,15,0,1,2,3,4,5,6,7,8,9,10
  500. V12:
  501. DATA 14,9,8,11,10,5,4,7,6,1,0,3,2,13,12,15
  502. C3:
  503. DATA 5,6,7,8,9,10,11,12,13,14,15,0,1,2,3,4
  504. C4:
  505. DATA 7,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6
  506. C5:
  507. DATA 4,5,6,7,8,9,10,11,12,13,14,15,0,1,2,3
  508. C6:
  509. DATA 2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,1
  510. C7:
  511. DATA 3,4,5,6,7,8,9,10,11,12,13,14,15,0,1,2
  512. C8:
  513. DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0
  514. C9:
  515. DATA 3,4,5,6,7,8,9,10,11,12,13,14,15,0,1,2
  516. C10:
  517. DATA 2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,1
  518. C11:
  519. DATA 3,4,5,6,7,8,9,10,11,12,13,14,15,0,1,2
  520. C12:
  521. DATA 3,4,5,6,7,8,9,10,11,12,13,14,15,0,1,2
  522. S3:
  523. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  524. S4:
  525. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  526. DATA 0
  527. S5:
  528. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  529. DATA 0
  530. S6:
  531. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  532. DATA 0
  533. S7:
  534. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  535. DATA 0
  536. S8:
  537. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  538. DATA 0
  539. S9:
  540. DATA 0,0,0,$0,0,0,0,0,0,0,0,0,$F,0,0,0
  541. DATA 0
  542. S10:
  543. DATA 0,$F,0,0,0,$0,0,0,0,0,0,0,0,0,0,0
  544. DATA 0
  545. S11:
  546. DATA 0,0,$F,$0,0,0,0,0,0,0,0,0,0,0,0,0
  547. DATA 0
  548. S12:
  549. DATA 0,0,0,$F,0,$0,0,0,0,0,0,0,0,0,0,0
  550. DATA 0
  551.  
  552.